// @ts-ignore
/* eslint-disable */
import { requestAuth } from '@/utils/request';

/** 获取字典列表 */
export async function fetchDictList(data?: {
  size?: number;
  current?: number;
  params?: {
    column: string;
    type: string;
    values?: string;
  }[];
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictType/page',
    data,
  });
}

/** 获取字典子项列表 */
export async function fetchDictChildList(data: {
  dictType: string;
  isAddDefault?: boolean;
  params?: {
    column: string;
    type: string;
    values?: string;
  }[];
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictData/listByDictType',
    data,
  });
}

/** 获取可用的字典子项列表（过滤禁用状态） */
export async function fetchAvailableDictChildList(data: {
  dictType: string;
  isAddDefault?: boolean;
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictData/normalListByDictType',
    data,
  });
}

/** 检查字典类型是否重复 */
export async function checkDictType(data: {
  id?: string; // id
  dictType: string; // 字典类型
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictType/check',
    data,
    skipErrorHandler: true, // 不展示接口请求的通用异常处理提示
  });
}

/** 字典新增 */
export async function addDict(data: {
  dictName: string; // 字典名称
  dictType: string; // 字典类型
  dictStatus: string; // 状态
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictType/save',
    data,
  });
}

/** 字典修改 */
export async function modifyDict(data: {
  id: string; // id
  dictName: string; // 字典名称
  dictType: string; // 字典类型 (重复校验)
  dictStatus: string; // 状态
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictType/update',
    data,
  });
}

/** 字典删除 */
export async function deleteDictById(data: { ids: string }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictType/delete',
    data,
  });
}

/** 检查字典项键值是否重复 */
export async function checkDictItemValue(data: {
  id?: string; // id
  dictType: string; // 字典类型
  dictValue: string; // 字典子项键值
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictData/check',
    data,
    skipErrorHandler: true, // 不展示接口请求的通用异常处理提示
  });
}

/** 字典项新增 */
export async function addDictItem(data: {
  dictLabel: string; // 字典标签
  dictValue: string; // 字典键值
  dictStatus: string; // 状态
  dictSort: number; // 字典排序
  dictType: string; // 字典类型
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictData/save',
    data,
  });
}

/** 字典项修改 */
export async function modifyDictItem(data: {
  id: string; // id
  dictLabel: string; // 字典标签
  dictSort: number; // 字典排序
  dictStatus: string; // 状态
  dictType: string; // 字典类型
  dictValue: string; // 字典键值
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictData/update',
    data,
  });
}

/** 字典项删除 */
export async function deleteDictItemById(data: { id: string }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictData/delete',
    data,
  });
}

/** 字典项批量删除 */
export async function deleteDictItemsByIds(data: { ids: string[] }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/dictData/deleteBatch',
    data,
  });
}
